package com.feisi.dao.sqlProvider;


import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;

/**
 * 专门编写动态sql语句的类
 * <p>
 * 提供一个返回Strin字符串的方法
 * <p>
 * 方法内部就是编写动态SQL语句
 * MyBatis其实也提供了相应的注解对不同的对象写相同的方法，只是修改对象就可以了，
 * 主要用到的注解有以下四个，用于增删改查：@InsertProvider,@DeleteProvider@UpdateProvider,和@SelectProvider
 */
public class ClueSqlProvider {


    /**
     * 批量删除
     * @param ids
     * @return
     */
    public String deleteByIds(@Param("ids") Integer[] ids) {

        SQL sql = new SQL();
        sql.DELETE_FROM("clue");//delete from clue

        //拼接条件: (#{ids[0]},#{ids[1]},#{ids[2]})
        StringBuilder sb = new StringBuilder();
        sb.append("(");
        for (int i = 0; i < ids.length; i++) {
            sb.append("#{ids["+i+"]},");
        }

        sb.deleteCharAt(sb.length()-1);
        sb.append(")");
        System.out.println(sb.toString());

        sql.WHERE("id in"+sb.toString());//where id in (...)

        System.out.println(sql.toString());

        return sql.toString();

    }

}
